package com.xjh.basestudy.designmode.behaviorMode.behaviorMode5_Status.p1_origin;

/**
 * @Author XuJianHua
 * @Date 2022/10/4 16:40
 * @Description
 * 可以看到注释中标注出的运行结果，不管如何操作都不会再出现错误操作的问题了，逻辑非常严密。然而非常遗憾的是，这依旧不算是好的设计，如果状态再复杂些，逻辑判断就会越加越多。

 */
public class Client {

    public static void main(String[] args) {
        Switcher s = new Switcher();
        s.switchOff();//ERROR!!!关闭状态下无须再关闭
        s.switchOn();//OK...使灯亮
        s.switchOff();//OK...使灯灭
        s.switchOn();//OK...使灯亮
        s.switchOn();//ERROR!!!开启状态下无须再开启
    }

}